package domain.dao.interfaces;

import java.util.List;

import domain.entities.interfaces.IContact;
import domain.entities.interfaces.IEntreprise;

public interface IDAOContact {

	public abstract int addContact(
			String firstName, String lastName, String email, String street,
			String city, String zip, String country, String mobile,
			String house, String work, String[] contactgroups) throws Exception;

	public abstract int addEntreprise(
			String firstName, String lastName, String email, String street,
			String city, String zip, String country, String mobile,
			String house, String work, int siret, String[] contactgroups)
			throws Exception;

	public abstract void addPhoneNumberToContact(int idContact, int idPhone)
			throws Exception;

	public abstract void deleteContact(int id) throws Exception;

	public abstract void updateContact(
			IContact contact, String firstName, String lastName,
			String email, String street, String city, String zip,
			String country, String mobile, String house, String work)
			throws Exception;

	public abstract void updateEnterprise(
			IEntreprise contact, String firstName, String lastName,
			String email, String street, String city, String zip,
			String country, String mobile, String house, String work, int siret)
			throws Exception;

	/**
	 * @param name
	 * @param firstname
	 * @param city
	 * @param country
	 * @param zipStart
	 * @return
	 */
	public abstract List<IContact> searchContact(String[] patterns);

	public abstract List<IContact> getAll();

	public abstract IContact getById(int id);

}